home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
tool
/
otohime
/
src
/
lib
/
hisin.asm
< prev
next >
Wrap
Assembly Source File
|
1994-11-16
|
3KB
|
94 lines
;
; 1994 1 高速サイン計算
;
.386p
; SIN
;input eax = angle ( rate 10000H = 3.141592…/2 )
;output eax = sin ( eax ) * 10000H
cseg segment dword public use32 'CODE'
assume cs:cseg,ds:cseg
public hiSpeedSin
db 'hiSpeedSin',10
hiSpeedSin proc near
push ebx
mov eax,[esp].8 ; 1番目の引数
mov edx,eax
and edx,30000H
cmp edx,10000H
je sin01
cmp edx,30000H
je sin01
jmp sin02
sin01: mov bx,ax
mov ax,0ffffH
sub ax,bx
sin02: and eax,0ffffH
call sin03
sin03: pop ecx
add ecx,sintb-sin03
push eax
shr eax,8
mov bx,cs:[ecx][eax*2]
mov cx,cs:[ecx+2][eax*2]
and ebx,0ffffH
and ecx,0ffffH
sub ecx,ebx
pop eax
and eax,0ffH
imul eax,ecx
shr eax,8
add eax,ebx
cmp edx,20000H
jb sin04
mov ebx,eax
xor eax,eax
sub eax,ebx
sin04:
pop ebx
ret
sintb dw 00000H,00192H,00324H,004B6H,00648H,007DAH,0096CH,00AFDH
dw 00C8FH,00E21H,00FB2H,01143H,012D5H,01465H,015F6H,01787H
dw 01917H,01AA7H,01C37H,01DC6H,01F56H,020E5H,02273H,02402H
dw 0250FH,0271DH,028AAH,02A37H,02BC3H,02D4FH,02EDBH,03066H
dw 031F1H,0337BH,03505H,0368EH,03816H,0399EH,03B26H,03CADH
dw 03E33H,03FB9H,0413EH,042C3H,04447H,045CAH,0474CH,048CEH
dw 04A4FH,04BD0H,04D4FH,04ECEH,0504DH,051CAH,05347H,054C3H
dw 0563EH,057B8H,05931H,05AAAH,05C21H,05D98H,05F0EH,06083H
dw 061F7H,0636AH,064DCH,0664DH,067BDH,0692CH,06A9AH,06C07H
dw 06D73H,06EDEH,07048H,071B1H,07319H,0747FH,075E5H,07749H
dw 078ACH,07A0FH,07B64H,07CCFH,07E2EH,07F8DH,080E7H,08242H
dw 0839BH,084F3H,0864AH,087A0H,088F5H,08A48H,08B99H,08CEAH
dw 08E39H,08F86H,090D3H,0921EH,09367H,094AFH,095F6H,0973BH
dw 0987FH,099C1H,09B02H,09C41H,09D7FH,09EBBH,09FF6H,0A12FH
dw 0A266H,0A39CH,0A4D1H,0A604H,0A735H,0A865H,0A993H,0AABFH
dw 0ABEAH,0AD13H,0AE3BH,0AF60H,0B085H,0B1A7H,0B2C8H,0B3E6H
dw 0B504H,0B61FH,0B739H,0B851H,0B967H,0BA7BH,0BB8EH,0BC9FH
dw 0BDAEH,0BEBBH,0BFC6H,0C0D0H,0C1D7H,0C2DDH,0C3E1H,0C4E3H
dw 0C5E3H,0C6E1H,0C7DDH,0C8D7H,0C9D0H,0CAC6H,0CBBBH,0CCADH
dw 0CD9EH,0CE8CH,0CF79H,0D063H,0D14CH,0D232H,0D317H,0D3F9H
dw 0D4DAH,0D5B8H,0D695H,0D76FH,0D847H,0D91DH,0D9F1H,0DAC3H
dw 0DB93H,0DC60H,0DD2CH,0DDF5H,0DEBDH,0DF82H,0E045H,0E106H
dw 0E1C4H,0E281H,0E33BH,0E3F3H,0E4A9H,0E55DH,0E60EH,0E6BDH
dw 0E76AH,0E815H,0E8BEH,0E964H,0EA08H,0EAAAH,0EB4AH,0EBE7H
dw 0EC82H,0ED1BH,0EDB1H,0EE45H,0EED7H,0EF67H,0EFF4H,0F07FH
dw 0F108H,0F18EH,0F212H,0F293H,0F313H,0F390H,0F40AH,0F483H
dw 0F4F9H,0F56CH,0F5DDH,0F64CH,0F6B9H,0F723H,0F78AH,0F7F0H
dw 0F852H,0F8B3H,0F911H,0F96DH,0F9C6H,0FA1DH,0FA72H,0FAC4H
dw 0FB13H,0FB60H,0FBABH,0FBF4H,0FC3AH,0FC7DH,0FCBEH,0FCFDH
dw 0FD39H,0FD73H,0FDAAH,0FDDFH,0FE12H,0FE42H,0FE6FH,0FE9AH
dw 0FEC3H,0FEE9H,0FF0DH,0FF2EH,0FF2EH,0FF4DH,0FF83H,0FF9BH
dw 0FFB0H,0FFC2H,0FFD2H,0FFE0H,0FFEBH,0FFF3H,0FFFAH,0FFFDH
dw 0FFFFH
hiSpeedSin endp
cseg ends
end